# 假设arr是一个已经给定的长度为n的一维整型数组
arr = [3, 1, 4, 1, 5, 9, 2, 6]  # 示例数组

if not arr:
    maxe, mine = None, None  # 如果数组为空，则最大值和最小值都是None
else:
    maxe = arr[0]
    mine = arr[0]

    for num in arr[1:]:# 对数组（或列表）arr进行遍历，但从索引1开始，直到数组的末尾。
        if num > maxe:
            maxe = num
        if num < mine:
            mine = num

        # 此时，maxe和mine分别存储了数组中的最大值和最小值
print("最大值:", maxe)
print("最小值:", mine)

# 最好情况时间复杂度：O(n)，其中n是数组的长度。即使数组已经是有序的，我们仍然需要遍历整个数组来确认最大值和最小值。
# 最坏情况时间复杂度：O(n)，即使数组是反向排序的，我们也需要遍历整个数组。
# 平均情况时间复杂度：O(n)，因为无论数组的元素如何分布，我们都需要遍历每个元素一次。